JAVA一个很简单的问题`没有比这个更菜的了

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:45:38
public class DateOlny{
int i;
float f;
boolean b;
DateOnly d=new DateOnly();
d.i=10;
d.f=3.3;
d.b=true;

public static void main(String[] args){
System.out.println(i);
System.out.println(f);
System.out.println(b);
}
}
一个很简单很简单的问题吧?在运行时会报错的,我想只要是学过JAVA的人都知道问题出在哪了。我才开始学的,所以会有问题,希望大家帮忙
另外我想问,int i=10和 d.int i =10有什么区别?
int i;
float f;
boolean b;
DateOnly d=new DateOnly();
d.i=10;
d.f=3.3;
d.b=true;
这一小段代码应该写在main方法里还是应该就在我写的这个地方?

文件名为DateOnly.java,代码如下:
public class DateOnly{
int i;
double f;
boolean b;

public DateOnly() {
this.i = 10;
this.f = 3.3;
this.b = true;
}

public static void main(String[] args){
DateOnly d=new DateOnly();
System.out.println(d.i);
System.out.println(d.f);
System.out.println(d.b);
}
}
通常的情况,类和main函数不会放在一起,不过像这样放在一起也可以运行。
主函数是静态的,所以不能够调用非静态变量,也就是说,类中作了如下声明:
int i;
float f;
boolean b;
在主函数中直接写:
System.out.println(i);
System.out.println(f);
System.out.println(b);
就会报错。
正确的做法可以声明
static int i;
...
不过更好的做法是在主函数中创建一个对象。d
再处理这个对象中的这些属性(i,f,b)。
也即是说,
int i=10处理的是变量。
而 d.i =10 处理的是对象中的属性。

建议你先看看书,理解好类和对象的概念。

写在 main里

你不能在class里 new它本身
DateOnly d=new DateOnly();
d.i=10;
d.f=3.3;
d.b=true;
这段放在main函数里的开头
re:int i=10和 d.int i